验证码已无效:AI 彻底击败图灵测试(CAPTCHA)的安全机制(附论文)
识别表面和边缘是挑选出扭曲字符的关键。
此图表示了物理上相近的特征识别单元如何分层构建,从而形成对象假设。
图片来源:Vicarious AI
模拟人类视觉皮层工作机理的计算机软件可以解答基于文本的验证码(CAPTCHA)问题,许多网站常常使用这种图像识别任务来区别网站访客到底是真人还是垃圾邮件机器人程序。
计算机算法已大大提高了识别图案(比如特定的动物或人脸)的准确性,这让软件得以自动对庞大的图像集合进行分类。但是我们逐渐依赖计算机做不好的一些方面。算法无法将图像识别与语义含义相匹配,所以今天你可以要求访客挑选出路标的图像,以此确保访客是真人。算法识别熟悉的图像何时被扭曲或被淹没于噪声就不是特别好,这使得我们只好依赖基于文本的CAPTCHA,扭曲的文本用来验证与Web服务交互的是真人。
CAPTCHA可以追溯到20年前的1997年。扭曲的字母和数字图像让机器因困惑而理解不了,但是对人类来说易于理解。网站访客通常要输入随机生成的CAPTCHA中所显示的字符,证明自己是真人,验证通过后才可以登录帐户或发送信息。
基于文本的CAPTCHA验证码的几个例子。(图片来源:D. George等人)
如果自动、成功地解答CAPTCHA验证码的比率高于1%,也就是说可以用软件解答100个验证码中的1个,那么这套CAPTCHA系统被认为是失败的。Vicarious的RCN以超过50%的准确性,成功识别了谷歌的reCAPTCHA、BotDetect的CAPTCHA生成器以及雅虎和PayPal的自动问题中基于文本的验证码。
或者至少不久前我们还依赖CAPTCHA。在今天的《科学》这一期杂志上,位于旧金山湾区的初创公司Vicarious AI描述了它开发的一种算法,这家公司热衷于为机器人开发强人工智能,完整论文如下:
该算法只需要极少的训练,就能够轻松处理CAPTCHA。它还能处理普通的文本识别。Vicarious的秘诀是什么?他们在设计其AI的结构时借鉴了我们通过研究哺乳动物的视觉皮层处理图像的方式所获得的信息。
从视觉层面来思考
Vicarious的研究人员兼联合创始人迪利普•乔治(Dileep George)告诉外媒,有证据表明视觉皮层是一种分层系统。在视觉皮层中,不同组的神经元识别对象边缘和表面之类的特征(其他神经元识别运动,对本文而言这其实不重要)。但是神经元开始彼此之间通信,通过邻近性来确定哪些特征是某个对象的一部分,而不是将某个场景或对象视作这些部分的集合。构建和识别对象时,场景是基于对象而不是基于单个特征来分层构建的。
这种基于对象的分类的结果是,即使一组相似的特征处于不同的方向或部分模糊,只要可见的特征具有同样的相对方向,照样可以识别出来。这就是为什么如果单个字母颠倒、逆向或淹没在嘈杂的背景下,我们仍可以识别出来。或者以Vicarious为例,这就是为什么我们仍能判断用冰做成的椅子是椅子。
为了竭力模仿大脑的运作机理,Vicarious的团队构建了所谓的递归皮层网络(即RCN)。关键的一个步骤是识别轮廓,而轮廓是定义对象边缘以及内部结构的特征。另一组代理获取表面特征,比如这些轮廓定义的表面的平滑度。这些已识别属性的集合基于物理邻近性被分入到属性池中。然后,这些属性池与其他池建立起联系,并传递消息以影响对方的特征选择,因而创建关联特征组。
关联特征组通过一个类似的过程来分层创建。这些树的顶部是关联特征(可能是对象)的集合(研究人员称之为“对象假设”)。要解析拥有对象集合的整个场景,RCN经历多轮消息传送。RCN为每个对象假设创建一个分数,重新考虑排名最高的分数,从同一个场景的其他假设这方面来评估它们,确保它们都占据连续的2D空间。一旦对象假设完成了几轮这样的选择,尽管大小和方向出现适度的变化,但它通常还是可以识别对象。
高效率
字母a的训练数据的一个例子。(图片来源:D. George等人)
训练方面的显著优点就是效率高。论文作者决定处理reCAPTCHA时,他们只是将一些例子与计算机上可用的字体集进行了比较。他们选择Georgia字体作为合理的近似,给RCN展示了五个例子,每个例子中所有的大小写字母都有部分旋转。在字符层面,这足以提供超过94%的字母识别准确性。这相当于在三分之二的时候解答了reCAPTCHA。人的准确性是87%,如果软件解答问题的准确能达到1%,该系统从安全角度来看是无用的。
它能解答的不仅仅是reCAPTCHA。该系统以类似的准确性解答了BotDetect的系统,以57%的准确性解答了雅虎和PayPal的系统。唯一的区别是所用的字体和针对几个参数的一番手动调整(针对不同系统中的变形和背景噪声来调整)。相比之下,其他神经网络需要大约50000个已解答的CAPTCHA来加以训练,RCN只需要260张单个字符的图像。如果安全服务改变字符串长度或改变所使用的失真,通常就要重新训练那些神经网络。
为了调整RCN以便处理实际图像中的文本,该团队为它提供了字母的共同出现和单词使用频率方面的信息,还有分析几何形状的能力。最后,它的准确性比性能一流的模型都要高出1.9%左右。优势同样不是很大,但这个系统所需的训练工作量少得多——领先的竞争对手用790万个图像进行了训练,而RCN仅用了1406个图像。RCN的内部数据表示比竞争对手的内部数据表示小不少,这不足为奇。
这个效率有点问题,因为它降低了需要跨过的硬件门槛,以便克服众多网站的一项主要的安全功能。
更普遍来说,对AI而言这可能是一大步。与下围棋软件一样,这不是广义的AI。虽然它非常适用于识别字符,但它不知道这些字符的含义,无法将它们翻译成其他语言,也不会根据识别结果来执行任何操作。但是RCN表明,AI不需要完全从实际智能中抽取出来——我们通过研究实际大脑而获得的见解可用来让我们的软件更高效。一段时间以来,AI之所以一直取得进展,是由于我们用更强大的硬件、更深层的管道和更庞大的数据集来处理问题。Vicarious则表明,回到AI的原始灵感也许不是一个坏主意。
相关阅读:
Facebook AI 将“早安”翻译成“攻击他们”,导致无辜男子被捕!
革命性计算架构突破:性能提高 200 倍;内存上可运行 AI 应用
Gartner 2018 年十大战略性技术趋势:AI 成为基础、从云到边缘等
欢迎加入交流,群主微信:aclood